package fpuna.ia.ea;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author gusamasan
 */
public class Punto {
// -----------------------------------------------------------------------------

    public static int INDICE_OBJETIVO_UNO = 0;

    public static int INDICE_OBJETIVO_DOS = 1;

    private double vectorEvaluaciones[];

    private int vectorSolucion[];

// -----------------------------------------------------------------------------

    /** Constructores *********************************************************/
    public Punto(){
        this.vectorEvaluaciones = new double[ 2 ];
    }

    public Punto( int cantidadObjetivos ){
        this.vectorEvaluaciones = new double[ cantidadObjetivos ];
    }
    /**************************************************************************/

    public int[] getSolucion(){
        return( this.vectorSolucion );
    }

    public void setSolucion( int vSolucion[] ){
        this.vectorSolucion = vSolucion;
    }

    public void asignarValorObjetivo( int indiceObjetivo, double valor ){
        this.vectorEvaluaciones[ indiceObjetivo ] = valor;
    }

    public boolean dominaA( Punto unPunto ){
    // ------------------------------------------------------------------------

        boolean objetivoUnoMejor, objetivoDosMejor;

    // ------------------------------------------------------------------------

        objetivoUnoMejor    = false;
        objetivoDosMejor    = false;
        
        

        if( this.vectorEvaluaciones[ Punto.INDICE_OBJETIVO_UNO ] <= unPunto.obtenerValorObjetivo(Punto.INDICE_OBJETIVO_UNO )  ){
            objetivoUnoMejor    = true;
        }

        if( this.vectorEvaluaciones[ Punto.INDICE_OBJETIVO_DOS ] <= unPunto.obtenerValorObjetivo(Punto.INDICE_OBJETIVO_DOS )  ){
            objetivoDosMejor    = true;
        }

        return( objetivoUnoMejor && objetivoDosMejor );
    }

    public double obtenerValorObjetivo( int indiceObjetivo ){
        return( this.vectorEvaluaciones[ indiceObjetivo ] );
    }

    public void imprimirEvaluaciones(){
        System.out.print( this.vectorEvaluaciones[ Punto.INDICE_OBJETIVO_UNO ] + " " );
        System.out.println( this.vectorEvaluaciones[ Punto.INDICE_OBJETIVO_DOS ] );
    }
}
